#!/bin/bash

# 检查是否在 OpenWrt 源码目录中
if [ ! -f "include/image.mk" ]; then
    echo "错误：请确保脚本在 OpenWrt 源码根目录中运行！"
    exit 1
fi

# 备份原始文件
IMAGE_MK="include/image.mk"
BACKUP_FILE="${IMAGE_MK}.bak"

if [ ! -f "$BACKUP_FILE" ]; then
    echo "备份原始文件: $IMAGE_MK -> $BACKUP_FILE"
    cp "$IMAGE_MK" "$BACKUP_FILE"
else
    echo "备份文件已存在，跳过备份。"
fi

# 检查是否存在匹配的行
if ! grep -q '^IMG_PREFIX:=' "$IMAGE_MK"; then
    echo "错误：未找到以 'IMG_PREFIX:=' 开头的行，请检查 $IMAGE_MK 文件内容。"
    exit 1
fi

# 检查文件写权限
if [ ! -w "$IMAGE_MK" ]; then
    echo "错误：没有权限修改 $IMAGE_MK 文件，请检查文件权限。"
    exit 1
fi

# 修改 image.mk 文件
echo "正在修改 $IMAGE_MK 文件以添加时间戳..."

# 使用 sed 修改 IMG_PREFIX 定义
sed -i '/^IMG_PREFIX:=/c\IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-$$(IMG_PREFIX_VERNUM)$$(IMG_PREFIX_VERCODE)$$(IMG_PREFIX_EXTRA)$$(BOARD)$$(if $$(SUBTARGET),-$$(SUBTARGET))-$$(shell TZ=Asia/Shanghai date +%Y%m%d-%H%M)' "$IMAGE_MK"

# 检查修改是否成功
if grep -q '$(shell TZ=Asia/Shanghai date +%Y%m%d-%H%M)' "$IMAGE_MK"; then
    echo "修改成功！镜像文件名将包含时间戳。"
else
    echo "修改失败，请手动检查 $IMAGE_MK 文件。"
    exit 1
fi

echo "初始化完成！可以开始编译镜像。"